A toggle is a gate that steers events received at a single input alternately to two outputs. An inverse toggle receives input events alternately on two inputs and generates output events in response to each alternating input. When considering the output which results from a given input, the function of the inverse toggle gate is equivalent to that of an exclusive-or (XOR) gate. However, as opposed to the XOR gate, the environment of an inverse toggle gate is constrained such that its two inputs alternate. Thus, an inverse toggle gate can be used in situations where an XOR logic function is needed and the environment is such that the two inputs to the XOR gate alternate.
Logical effort describes the computational complexity of a logic function. As those skilled in the art will appreciate, the XOR gate represents a burdensome logic function in terms of logical effort. For example, while logical efforts for an input of a NAND function and a NOR function are 4/3 and 5/3, respectively, the logical effort for an input of the XOR function is 4. Also, it should be appreciated that the logical effort directly correlates with a rate at which a logic gate implementing the logic function can be exercised, i.e., a bandwidth capability of the logic gate. Therefore, because the XOR gate has a relatively large logical effort value, the bandwidth of the XOR gate suffers accordingly.